﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using SisEagle.View.Web.Base;
using SisEagle.IView.Pagamento;
using System.Data;

namespace SisEagle.View.Web.Pagamento
{
    public partial class Pagamentos : WebPageBase, IPagamentosView
    {
        #region Singleton
        private SisEagleBO.PagamentoBO _PagamentosBusiness;
        private SisEagleBO.PagamentoBO PagamentosBusiness
        {
            get
            {
                if (_PagamentosBusiness == null)
                    _PagamentosBusiness = new SisEagleBO.PagamentoBO();

                return _PagamentosBusiness;
            }
        }


        #endregion

        #region Page-Load
        protected override void OnInit(EventArgs e)
        {
                base.OnInit(e);
                if (!DesignMode)
                {
                    inicialize();
                }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (!IsPostBack)
            {

            }
        }
        private void inicialize()
        {
            btnLocalizar.Click += (btnLocalizar_Click);
            gridPagamentos.PageIndexChanging += (gridPagamentos_PageIndexChanging);
            gridPagamentos.RowDataBound += gridPagamentos_RowDataBound;

        }

        void gridPagamentos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            int TotalRow = ListaResultado.Tables["Pagamento"].Rows.Count;
            AjustaTotalizador(TotalRow, null, string.Empty, null, string.Empty, e);
        }

        void gridPagamentos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gridPagamentos.PageIndex = e.NewPageIndex;
            gridPagamentos.DataSource = BuscarPagamentos();
            gridPagamentos.DataBind();
        }

        private DataView BuscarPagamentos()
        {
            DataView dv = new DataView();

            dv = PagamentosBusiness.FindAll().Tables[0].DefaultView;

            return dv;
        }
        #endregion

        #region Internal

        protected void btnLocalizar_Click(object sender, ImageClickEventArgs e)
        {
            CarregaGrid();
        }

        private void CarregaGrid()
        {
            gridPagamentos.DataSource = ListaResultado;
            gridPagamentos.DataBind();
        }

        #endregion

        #region Binding

        public int CodPagamento
        {
            get
            {
                if (string.IsNullOrEmpty(txtCodigoPagamento.Text) || !(UtilsNumber.IsNumber(txtCodigoPagamento.Text)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(txtCodigoPagamento.Text);

            }
            set
            {
                txtCodigoPagamento.Text = value.ToString();
            }
        }

        public int CodCarrinhoCompras
        {
            get
            {
                if (string.IsNullOrEmpty(txtCodCarrinhoCompras.Text) || !(UtilsNumber.IsNumber(txtCodCarrinhoCompras.Text)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(txtCodCarrinhoCompras.Text);

            }
            set
            {
                txtCodCarrinhoCompras.Text = value.ToString();
            }
        }

        public DateTime DataVencimento
        {
            get
            {
                if (string.IsNullOrEmpty(txtDataVencimento.Text))
                    return DateTime.Now;

                else
                    return Convert.ToDateTime(txtDataVencimento);

            }
            set
            {
                txtDataVencimento.Text = value.ToString();
            }
        }

        public DateTime DataPagamento
        {
            get
            {
                if (string.IsNullOrEmpty(txtDataPagamento.Text))
                    return DateTime.Now;

                else
                    return Convert.ToDateTime(txtDataPagamento);

            }
            set
            {
                txtDataPagamento.Text = value.ToString();
            }
        }


        public System.Data.DataSet ListaResultado
        {
            get
            {
                if (CodPagamento != 0)
                    return PagamentosBusiness.FindBy_CodPagamento(CodPagamento);

                if (CodCarrinhoCompras != 0)
                    return PagamentosBusiness.FindBy_codCarrinhoCompras(CodCarrinhoCompras);

                if (DataVencimento == null)
                    return PagamentosBusiness.FindBy_DataVencimento(DataVencimento);

                if (DataPagamento == null)
                    return PagamentosBusiness.FindBy_DataPagamento(DataPagamento);

                else
                    return PagamentosBusiness.FindAll();

            }
            set
            {
                ListaResultado = value;
                CarregaGrid();
            }
        }

        #endregion
    }
}